package com.draven.mall.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 商家入驻申请实体类
 */
@Data
@TableName("tb_merchant_application")
public class MerchantApplication implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("store_name")
    private String storeName;    // 店铺名称

    @TableField("contact")
    private String contact;      // 联系人

    @TableField("phone")
    private String phone;        // 联系电话

    @TableField("address")
    private String address;      // 店铺地址

    @TableField("description")
    private String description;  // 店铺描述

    @TableField("business_type")
    private String businessType; // 经营类型

    @TableField("license_image")
    private String licenseImage; // 营业执照图片

    @TableField("id_card_front")
    private String idCardFront;  // 身份证正面

    @TableField("id_card_back")
    private String idCardBack;   // 身份证背面

    @TableField("bank_card")
    private String bankCard;     // 银行卡号

    @TableField("bank_name")
    private String bankName;     // 开户行

    @TableField("status")
    private Integer status;      // 状态：0-待审核，1-审核通过，2-审核拒绝

    @TableField("reject_reason")
    private String rejectReason; // 拒绝原因

    @TableField("auditor_id")
    private Long auditorId;      // 审核人ID

    @TableField("audit_time")
    private Date auditTime;      // 审核时间

    @TableField("created_time")
    private Date createTime;     // 创建时间

    @TableField("updated_time")
    private Date updateTime;     // 更新时间

    // 为避免getter方法缺失问题，手动添加getter方法
    public Long getId() {
        return id;
    }

    public String getStoreName() {
        return storeName;
    }

    public String getContact() {
        return contact;
    }

    public String getPhone() {
        return phone;
    }

    public Integer getStatus() {
        return status;
    }

    public String getBusinessType() {
        return businessType;
    }

    public Date getCreateTime() {
        return createTime;
    }
}